import "@/core/http";
import JSONbig from "json-bigint";
import "@/components/Dialog";
import Vue from "vue";
import ElementUI from "element-ui";
// import 'element-ui/lib/theme-chalk/index.css'
import "@/assets/style/index.scss";
import "@/core/mixins/global.js";
import App from "./App";
import router from "./router";
import store from "./store";
import TreeSelect from "@/components/TreeSelect";
import RichEditor from "@/components/RichEditor";
import InputNumberRange from "@/components/InputNumberRange";
import DateRange from "@/components/DateRange";
import FilterBox from "@/components/FilterBox";
import TableProgressColumn from "@/components/TableProgressColumn";
import UserSelect from "@/components/UserSelect";
import DeptSelect from "@/components/DeptSelect";
import HeaderHandle from "@/components/HeaderHandle";
import RichEditorNew from "@/components/RichEditorNew"
import UploadVideo from "@/components/UploadVideo"
import VCharts from "v-charts";
import VXETable from "vxe-table";
import "vxe-table/lib/style.css";
import "@/assets/online-icon/iconfont.css";
import Validation from "./utils/commonValid.js";
import Viewer from "v-viewer";
import "viewerjs/dist/viewer.css";
Vue.use(Viewer, {
  defaultOptions: {
    button: false,
    navbar: false,
    title: false,
    toolbar: true,
  },
});
Vue.use(VXETable);

window.JSON = new JSONbig({
  storeAsString: true
});

Vue.component("tree-select", TreeSelect);
Vue.component("rich-editor", RichEditor);
Vue.component("input-number-range", InputNumberRange);
Vue.component("date-range", DateRange);
Vue.component("filter-box", FilterBox);
Vue.component("table-progress-column", TableProgressColumn);
Vue.component("user-select", UserSelect);
Vue.component("dept-select", DeptSelect);
Vue.component("header-handle", HeaderHandle);
Vue.component("rich-editor-new", RichEditorNew)
Vue.component("upload-video", UploadVideo)
Vue.use(ElementUI);
Vue.use(VCharts);
Vue.use(Validation);
Vue.config.productionTip = false;
/* eslint-disable no-new */
const vm = new Vue({
  router,
  store,
  render: (h) => h(App),
});
vm.$mount("#app");
Vue.prototype.$vm = vm;
